home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / A-Monthly Disks / (c)abj.d64 / sales exp1.1 (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  8KB  |  255 lines

  1. 0 DV=PEEK(186):REM WHICH DEVICE DID THIS                  COME FROM?
  2. 1 YR=            1990
  3. 2 REM *****************************
  4. 3 REM *AS THE YEAR CHANGES, CHANGE*
  5. 4 REM *THE ABOVE VALUE, AND TYPE: *
  6. 5 REM *RUN 10000, AND HIT <RETURN>*
  7. 6 REM +AND THIS WILL REPLACE THE  +
  8. 7 REM +ORIGINAL FILE CALLED       +
  9. 8 REM +      SALES EXP1.1 !       +
  10. 9 REM *****************************
  11. 10 IFA=1ORPEEK(49152)=160THENGOTO25
  12. 15 A=1
  13. 20 LOAD"EXNEWML",DV,1
  14. 25 POKE53280,.:POKE53281,.:PRINT"":POKE50496,1:SYS50455:POKE49263,0
  15. 30 DIMT$(300):DIMAC$(21):DIMM$(12)
  16. 35 YR$=MID$(STR$(YR),2,4):POKE650,128
  17. 40 FORX=1TO40:BU$=BU$+"[157]":BL$=BL$+" ":DL$=DL$+"-":PL$=PL$+"[192]":NEXTX
  18. 42 BU$=BU$+BU$:LB$=BL$+BL$:LD$=DL$+DL$:IL$=LEFT$(LD$,60)+LEFT$(BU$,60)
  19. 45 FORX=1TO21:READAC$(X):NEXT
  20. 50 DATAAUTO EXPENSE - PARKING,AUTO EXPENSE - MAINTENANCE
  21. 52 DATAAUTO EXPENSE - INSURANCE,AUTO EXPENSE - FUEL
  22. 55 DATAAUTO EXPENSE - LICENSE & MISC.,ADVERTISING & PROMOTION
  23. 60 DATACOMMISSIONS,COSTS OF MFG.,DUES & PROF. ORG.,LICENSES
  24. 65 DATAINTEREST - BUS. MORTGAGE,INTEREST - CAR & MISC.,OFFICE,TAXES
  25. 70 DATAPOSTAGE,BUSINESS PUBLICATIONS,TELEPHONE,UTILITIES
  26. 75 DATALEGAL & PROFESSIONAL SERVICES,PROFESSIONAL MEETINGS,OTHER
  27. 80 FORX=1TO12:READM$(X):NEXTX
  28. 90 DATAJAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
  29. 95 T$(0)=RIGHT$(YR$,2)+"0101"+LEFT$(LB$,60)+"0000.00"
  30. 97 T$(0)=RIGHT$(YR$,2)+"0101"
  31. 100 GOSUB9000
  32. 110 PRINT:PRINT"DO YOU WANT TO ENTER SOME TRANSACTIONS? PRESS Y, N, OR[146]"
  33. 115 PRINT"(CLR) TO ERASE OLD FILES/START NEW YEAR [146]"
  34. 120 GOSUB9500:IFT$="N"THENGOTO5000
  35. 130 IFT$="Y"THENGOTO145
  36. 135 IFT$="[147]"THEN19000
  37. 140 GOTO120
  38. 145 GOSUB150:GOTO250
  39. 150 GOSUB9000:PRINT"USE CURSORS TO CHOOSE EXPENSE, HIT (RET)[146]";
  40. 160 FORX=1TO21:PRINTAC$(X);
  41. 170 IFX<21THENPRINT
  42. 180 NEXTX:X=1
  43. 190 PRINT"";
  44. 200 POKE49277,LEN(AC$(X)):SYS49249
  45. 210 GOSUB9500
  46. 220 IFT$=""ANDX<21THENPOKE49277,LEN(AC$(X)):SYS49249:X=X+1:PRINT"";:GOTO200
  47. 230 IFT$="[145]"ANDX>1THENPOKE49277,LEN(AC$(X)):SYS49249:X=X-1:PRINT"[145]";:GOTO200
  48. 240 IFT$=CHR$(13)THENA$=AC$(X):RETURN
  49. 245 GOTO210
  50. 250 REM *INPUT/EDIT TRANSACTIONS*
  51. 260 NT=1:GOSUB4000
  52. 265 Y=NT+1:IFT$(1)="NIL"ORT$(1)=""THENY=1
  53. 267 GOSUB9000:GOTO275
  54. 270 GOSUB9005
  55. 275 PRINTPL$;:PRINT" F1[146]-ADVANCE A PAGE    F3[146]-BACK UP A PAGE"
  56. 280 PRINT" F5[146]-FINISH INPUT      F7[146]-HELP!!"
  57. 290 PRINTPL$
  58. 300 PRINTTAB(20-(LEN(A$)/2))"";A$;"[146]"
  59. 302 Y1$=STR$(Y):PRINT" REC#";TAB(8-LEN(Y1$));"[156][146]";Y1$;"[146]"
  60. 305 IFT$(1)<>""ANDT$(1)<>"NIL"THEN320
  61. 310 T$(1)=RIGHT$(YR$,2)+"0101"+LEFT$(LB$,60)+"0000.00"
  62. 320 IFT$(Y)=""THENT$(Y)=LEFT$(T$(Y-1),6)+LEFT$(LB$,60)+"0000.00"
  63. 330 PRINT"[146]DATE:  [156][146]";M$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2):PRINT
  64. 340 PRINT"[146]TRANSACTION: [156][146]":PRINTMID$(T$(Y),7,60):PRINT
  65. 350 PRINT"[146]AMOUNT: [156][146]$";RIGHT$(T$(Y),8):PRINT
  66. 360 PRINT"ENTER THE CORRECT DATA, OR <RETURN> TO  ";
  67. 370 PRINT"            LEAVE UNCHANGED             [146]"
  68. 400 PRINT"";:SL=6:POKE49277,SL:SYS49249:F=0:PK=1:GOSUB1000
  69. 405 ONFGOTO600,610,620,700
  70. 407 IFB$=""THEN470
  71. 410 D1=0:D=0:FORX=1TO6:D=VAL(RIGHT$(B$,X)):IFD>D1THEND1=D
  72. 415 NEXTX:IFLEN(B$)<3THENT$(Y)=LEFT$(T$(Y-1),4)+RIGHT$(T$(Y),69):GOTO450
  73. 420 FORX=1TO12:IFM$(X)=LEFT$(B$,3)THENX$=RIGHT$("0"+MID$(STR$(X),2,2),2):GOTO450
  74. 430 NEXTX
  75. 440 PRINT:PRINT"CHECK THE DATE & TRY AGAIN[146]"
  76. 445 PRINT"";:SL=6:POKE49277,SL:SYS49249:GOTO400
  77. 450 D$=RIGHT$("0"+MID$(STR$(D1),2,2),2)
  78. 455 IFLEN(B$)<3THENX$=MID$(T$(Y-1),3,2)
  79. 460 T$(Y)=RIGHT$(YR$,2)+X$+D$+RIGHT$(T$(Y),67)
  80. 470 PRINT"";M$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2)
  81. 480 PRINT"";:SL=60:POKE49277,SL:SYS49249:GOSUB1000:IFB$=""THEN500
  82. 490 T$(Y)=LEFT$(T$(Y),6)+LEFT$(B$+LB$,60)+RIGHT$(T$(Y),7)
  83. 500 PRINT"";MID$(T$(Y),7,60)
  84. 510 PRINT"";:SL=7:POKE49277,SL:SYS49249:GOSUB1000:IFB$=""THEN530
  85. 520 T$(Y)=LEFT$(T$(Y),66)+RIGHT$("        "+B$,7)
  86. 522 IFMID$(T$(Y),71,1)="."THEN530
  87. 524 PRINT:PRINT"YOU MUST INPUT DECIMAL POINT AND CENTS! [146]";
  88. 525 FORV=1TO300:NEXTV
  89. 526 PRINT"";:POKE49277,7:SYS49249
  90. 528 PRINT"";:GOTO510
  91. 530 PRINT"";RIGHT$(T$(Y),7)
  92. 540 IFRIGHT$(T$(Y),67)<>LEFT$(LB$,60)+"0000.00"THENY=Y+1:IFY>NTTHENNT=NT+1
  93. 550 GOTO267
  94. 600 IFY<NT+1THENY=Y+1
  95. 605 GOTO270
  96. 610 IFY>1THENY=Y-1
  97. 615 GOTO270
  98. 620 IFT$(NT)=LEFT$(T$(NT-1),6)+LEFT$(LB$,60)+"0000.00"THENNT=NT-1
  99. 625 GOSUB4100:PRINT"[147]WANT TO INPUT OTHER TRANSACTIONS (Y/N)? [146]"
  100. 630 GOSUB9500:IFT$="Y"THENFORX=1TONT:T$(X)="":NEXTX:NT=0:GOTO145
  101. 640 IFT$<>"N"THEN630
  102. 650 PRINT"DO YOU WANT TO GO TO PRINTOUTS (Y/N)?   [146]"
  103. 660 GOSUB9500:IFT$="Y"THEN5000
  104. 670 IFT$<>"N"THEN660
  105. 680 PRINT"PULL OUT YOUR DISK, AND SHUT DOWN.  BYE.[146]":END
  106. 700 SYS49280:GOSUB9500:SYS49280:GOTO270
  107. 1000 B$="":PRINT""
  108. 1002 IFPK=0THENPRINTLB$;BL$;"[145][145][145]";
  109. 1005 AB=(20-(SL/2)):IFAB<1THENAB=0
  110. 1010 PRINTTAB(AB)MID$(IL$,(61-SL),SL*2);
  111. 1015 IFPK=0THEN1080
  112. 1020 GETT$:IFT$=""THEN1020
  113. 1025 IFT$=CHR$(13)THENT$="":GOTO1120
  114. 1030 IFT$="[133]"THENF=1:GOTO1120
  115. 1040 IFT$="[134]"THENF=2:GOTO1120
  116. 1050 IFT$="[135]"THENF=3:GOTO1120
  117. 1060 IFT$="[136]"THENF=4:GOTO1120
  118. 1070 POKE512,ASC(T$):PRINTT$;
  119. 1080 POKE49153,PK:POKE49165,PK:SYS49152:POKE49165,0:POKE49153,0
  120. 1090 B$="":P=0
  121. 1100 P=P+1:L=PEEK(511+P):IFL=0THEN1120
  122. 1110 B$=B$+CHR$(L):GOTO1100
  123. 1120 PK=0:RETURN
  124. 4000 REM  *LOAD FILES*
  125. 4010 PRINT"[147]INSERT DATA DISK, AND HIT RETURN[146] TO LOAD":POKE198,0
  126. 4020 GOSUB9500:AN=X
  127. 4030 OPEN1,DV,2,"0:A"+STR$(AN)+YR$+",R"
  128. 4040 INPUT#1,NT
  129. 4050 FORX=1TONT:INPUT#1,T$(X):NEXTX
  130. 4060 CLOSE1:RETURN
  131. 4100 REM  *SAVE FILES*
  132. 4105 PRINT"[147]SORTING THE TRANSACTIONS...":GOSUB4400:PRINT
  133. 4110 PRINT"INSERT DATA DISK, AND HIT RETURN[146] TO SAVEANY OTHER KEY TO GO BACK"
  134. 4115 GOSUB9500:IFT$=CHR$(13)THEN4120
  135. 4116 GOTO270
  136. 4119 POKE198,0
  137. 4120 C$=CHR$(34)
  138. 4125 OPEN15,DV,15:PRINT#15,"S0:A"+STR$(AN)+YR$:CLOSE15
  139. 4130 OPEN1,DV,2,"0:A"+STR$(AN)+YR$+",W"
  140. 4140 PRINT#1,NT
  141. 4150 FORX=1TONT:PRINT#1,C$;T$(X);C$:NEXTX
  142. 4160 CLOSE1:RETURN
  143. 4400 S2=NT
  144. 4401 S2=INT(S2/2):IFS2=0THEN4409
  145. 4402 S3=1:S4=NT-S2
  146. 4403 S5=S3
  147. 4404 S6=S5+S2:IFT$(S5)<T$(S6)THEN4407
  148. 4405 S7$=T$(S5):T$(S5)=T$(S6):T$(S6)=S7$:S5=S5-S2:IFS5<1THEN4407
  149. 4406 GOTO4404
  150. 4407 S3=S3+1:IFS3>S4THEN4401
  151. 4408 GOTO4403
  152. 4409 RETURN
  153. 5000 CLOSE4:OPEN4,4:PRINT#4:CLOSE4
  154. 5010 YT=0:GOSUB9000
  155. 5020 PRINT"CHOOSE A PRINTOUT:[146]"
  156. 5030 PRINT"A[146]-(YEAR) SINGLE EXPENSE REPORT"
  157. 5040 PRINT"B[146]-(YEAR) ALL EXPENSE REPORT"
  158. 5050 PRINT"C[146]-(MONTH) SINGLE EXPENSE REPORT"
  159. 5060 PRINT"D[146]-(MONTH) ALL EXPENSE REPORT"
  160. 5070 PRINT"E[146]-QUIT"
  161. 5100 GOSUB9500:T=ASC(T$)-64:IFT>5ORT<1THEN5100
  162. 5110 ONTGOTO5200,5400,5600,5800,680
  163. 5200 GOSUB150:GOSUB4000:GOSUB5205:IFM$="NIL"THENFORQ=1TO700:NEXTQ:GOTO5000
  164. 5202 GOTO5000
  165. 5205 PRINT"[147]GET YOUR PRINTER READY, AND HIT ANY KEY [146]":GOSUB9500
  166. 5210 A$=AC$(AN)
  167. 5212 MT=0:OPEN4,4
  168. 5213 PRINTTAB(10)"CHECKING EXPENSE SUMMARY OF    ";A$
  169. 5214 M$=LEFT$(T$(1),3):IFM$="NIL"THENCLOSE4:PRINT"FILE EMPTY!![146]":GOTO5310
  170. 5215 CMD4
  171. 5217 PRINTTAB(30-(LEN(A$)/2))"EXPENSE SUMMARY OF ";A$
  172. 5220 PRINT:PRINT"DATE        TRANSACTION";BL$;"        AMOUNT"
  173. 5230 FORY=1TONT
  174. 5240 PRINTM$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2);"  ";MID$(T$(Y),7,60);
  175. 5250 PRINT"  ";RIGHT$(T$(Y),7)
  176. 5260 MT=MT+VAL(RIGHT$(T$(Y),7))
  177. 5270 IFMID$(T$(Y),3,2)=MID$(T$(Y+1),3,2)ANDY<>NTTHEN5290
  178. 5272 IFMT<.01THENMT$="     .00":GOTO5280
  179. 5275 MT$=RIGHT$("    "+STR$(INT(MT)),5):CT=MT-INT(MT)+.005
  180. 5276 IFCT<.01THENMT$=MT$+".00":GOTO5280
  181. 5277 MT$=MT$+MID$(STR$(CT),2,3)
  182. 5280 PRINTLEFT$(LB$,49);M$(VAL(MID$(T$(Y),3,2)));" TOTAL: ";MT$:MT=0
  183. 5290 YT=YT+VAL(RIGHT$(T$(Y),7)):NEXTY
  184. 5292 IFYT<.01THENYT$="     .00":GOTO5300
  185. 5295 YT$=RIGHT$("    "+STR$(INT(YT)),5):CT=YT-INT(YT)+.005
  186. 5296 IFCT<.01THENYT$=YT$+".00":GOTO5300
  187. 5297 YT$=YT$+MID$(STR$(CT),2,3)
  188. 5300 PRINTLEFT$(LB$,68);"---------"
  189. 5305 PRINTLEFT$(LB$,58);"YEAR TOTAL:";YT$:PRINTLEFT$(LB$,68);"========="
  190. 5307 PRINT#4:CLOSE4
  191. 5310 RETURN
  192. 5400 PRINT"[147]GET YOUR PRINTER READY, AND ENSURE YOUR ";
  193. 5410 PRINT"DISK IS IN THE DRIVE, THEN HIT ANY KEY. [146]":GOSUB9500
  194. 5420 FORAN=1TO21:GOSUB4030:YT=0:GOSUB5210:NEXTAN:GOTO5000
  195. 5600 GOSUB150:GOSUB5605:PRINT#4:CLOSE4:GOTO5000
  196. 5605 PRINT"[147]CHOOSE A MONTH: ---[157][157][157]";
  197. 5610 B$="":POKE49277,3:SYS 49152:FORP=0TO2:B$=B$+CHR$(PEEK(512+P)):NEXTP
  198. 5620 FORM=1TO12:IFM$(M)=B$THEN5630
  199. 5625 NEXTM:PRINT"CHECK SPELLING, AND TRY AGAIN!":GOTO5605
  200. 5630 SM$=RIGHT$("0"+MID$(STR$(M),2,2),2)
  201. 5640 AN=X:GOSUB4030:GOSUB5705:GOTO5000
  202. 5705 PRINT"[147]GET YOUR PRINTER READY, AND HIT ANY KEY [146]":GOSUB9500
  203. 5710 A$=AC$(AN)
  204. 5712 MT=0:OPEN4,4:CMD4:PRINTTAB(30-(LEN(A$)/2))"EXPENSE SUMMARY OF ";A$
  205. 5720 PRINT:PRINT"DATE        TRANSACTION";BL$;"        AMOUNT"
  206. 5730 FORY=1TONT:IFMID$(T$(Y),3,2)<>SM$THEN5790
  207. 5740 PRINTM$(VAL(MID$(T$(Y),3,2)));" ";MID$(T$(Y),5,2);"  ";MID$(T$(Y),7,60);
  208. 5750 PRINT"  ";RIGHT$(T$(Y),7)
  209. 5760 MT=MT+VAL(RIGHT$(T$(Y),7))
  210. 5770 IFMID$(T$(Y),3,2)=MID$(T$(Y+1),3,2)THEN5290
  211. 5772 IFMT<.01THENMT$="     .00":GOTO5780
  212. 5775 MT$=RIGHT$("    "+STR$(INT(MT)),5):CT=MT-INT(MT)+.005
  213. 5776 IFCT<.01THENMT$=MT$+".00":GOTO5780
  214. 5777 MT$=MT$+MID$(STR$(CT),2,3)
  215. 5778 PRINTLEFT$(LB$,68);"---------"
  216. 5780 PRINTLEFT$(LB$,58);M$(VAL(MID$(T$(Y),3,2)));" TOTAL: ";MT$:MT=0
  217. 5785 PRINTLEFT$(LB$,68);"========="
  218. 5790 NEXTY:RETURN
  219. 5800 REM  ALL EXPENSES
  220. 5805 PRINT"[147]CHOOSE A MONTH: ---[157][157][157]";
  221. 5810 B$="":POKE49277,3:SYS 49152:FORP=0TO2:B$=B$+CHR$(PEEK(512+P)):NEXTP
  222. 5820 FORM=1TO12:IFM$(M)=B$THEN5830
  223. 5825 NEXTM:PRINT"CHECK SPELLING, AND TRY AGAIN!":GOTO5805
  224. 5830 SM$=RIGHT$("0"+MID$(STR$(M),2,2),2)
  225. 5835 PRINT"[147]GET YOUR PRINTER READY, AND ENSURE YOUR ";
  226. 5837 PRINT"DISK IS IN THE DRIVE, THEN HIT ANY KEY. [146]":GOSUB9500
  227. 5840 FORAN=1TO21:GOSUB4030:GOSUB5710:PRINT#4:CLOSE4:NEXTAN:GOTO5000
  228. 8999 END
  229. 9000 PRINT"[147]          [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  230. 9002 GOTO9010
  231. 9005 PRINT"          [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  232. 9010 PRINTTAB(10)"[221]BUSINESS EXPENSES[146][221]"
  233. 9020 PRINTTAB(10)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
  234. 9030 RETURN
  235. 9200 B$="":A=0
  236. 9210 POKE49277,SL:SYS49152
  237. 9220 P=PEEK(512+A):IFP=0THENGOTO9250
  238. 9230 B$=B$+CHR$(P)
  239. 9240 A=A+1:GOTO9220
  240. 9250 RETURN
  241. 9300 PRINT"[145]";:D=D1:R=R1:GOSUB9100:POKE49277,(SL+1):SYS49249
  242. 9310 PRINT:D=D2:R=R2:GOSUB9110:PRINTCA$;
  243. 9320 GOSUB9200
  244. 9330 IFB$=""THEND=D1:R=R1:GOSUB9100:POKE49277,(SL+1):SYS49249:RETURN
  245. 9340 RETURN
  246. 9500 GETT$:IFT$=""THEN9500
  247. 9510 RETURN
  248. 10000 SAVE"@0:SALES EXP1.1",8:END
  249. 17000 OPEN15,8,15:INPUT#15,EN,EM$,ET,ES:PRINTEN;EM$:CLOSE15:RETURN
  250. 19000 PRINT"[147]ARE YOU SURE (Y/N)?"
  251. 19005 GOSUB9500:IFT$="Y"THEN19010
  252. 19007 RUN
  253. 19010 NT=1:T$(1)="NIL":FORAN=1TO21
  254. 19020 GOSUB4125:NEXTAN:RUN
  255.